﻿using SiGeCoPre.Presupuesto_BL;
using SiGeCoPre.Presupuesto_BLIMPL;

namespace SiGeCoPre.Presupuesto_Factory
{
    /// <summary>
    /// Clase para obtener instancias de las implementaciones
    /// de las interfaces BL
    /// </summary>
    class BLFactoryPresupuesto
    {
        /// <summary>
        /// Obtiene una implementación de BLPaises
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLPaises</returns>
        public static BLPaises createPais()
        {
            return new BLIMPLPaises();
        }

        /// <summary>
        /// Obtiene una implementación de BLProvincias
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLProvincias</returns>
        public static BLProvincias createProvincia()
        {
            return new BLIMPLProvincias();
        }

        /// <summary>
        /// Obtiene una implementación de BLCiudades
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLCiudades</returns>
        public static BLCiudades createCiudad()
        {
            return new BLIMPLCiudades();
        }

        /// <summary>
        /// Obtiene una implementación de BLClientes
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLClientes</returns>
        public static BLClientes createCliente()
        {
            return new BLIMPLClientes();
        }

        /// <summary>
        /// Obtiene una implementación de BLEmpleados
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLEmpleados</returns>
        public static BLEmpleados createEmpleado()
        {
            return new BLIMPLEmpleados();
        }

        /// <summary>
        /// Obtiene una implementación de BLRepuestos
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLRepuestos</returns>
        public static BLRepuestos createRepuesto()
        {
            return new BLIMPLRepuestos();
        }

        /// <summary>
        /// Obtiene una implementación de BLSectores
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLSectores</returns>
        public static BLSectores createSector()
        {
            return new BLIMPLSectores();
        }

        /// <summary>
        /// Obtiene una implementación de BLClientesCiudades
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLClientesCiudades</returns>
        public static BLClientesCiudades createClienteCiudad()
        {
            return new BLIMPLClientesCiudades();
        }

        /// <summary>
        /// Obtiene una implementación de BLPresupuestos
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLPresupuestos</returns>
        public static BLPresupuestos createPresupuesto()
        {
            return new BLIMPLPresupuestos();
        }

        /// <summary>
        /// Obtiene una implementación de BLPresupuestosClientes
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLPresupuestosClientes</returns>
        public static BLPresupuestosClientes createPresupuestoClientes()
        {
            return new BLIMPLPresupuestosClientes();
        }

        /// <summary>
        /// Obtiene una implementación de BLEquipo
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLEquipo</returns>
        public static BLEquipo createEquipo()
        {
            return new BLIMPLEquipo();
        }

        /// <summary>
        /// Obtiene una implementación de BLMantenimiento
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLMantenimiento</returns>
        public static BLMantenimiento createMantenimiento()
        {
            return new BLIMPLMantenimiento();
        }

        /// <summary>
        /// Obtiene una implementación de BLPresupuestoMantenimiento
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLPresupuestoMantenimiento</returns>
        public static BLPresupuestoMantenimiento createPresupuestoMantenimiento()
        {
            return new BLIMPLPresupuestoMantenimiento();
        }

        /// <summary>
        /// Obtiene una implementación de BLPresupuestoRepuesto
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLPresupuestoRepuesto</returns>
        public static BLPresupuestoRepuesto createPresupuestoRepuesto()
        {
            return new BLIMPLPresupuestoRepuesto();
        }

        /// <summary>
        /// Obtiene una implementación de BLPresupuestoEquipo
        /// </summary>
        /// <returns>Devuelve una instancia de BLIMPLPresupuestoEquipo</returns>
        public static BLPresupuestoEquipo createPresupuestoEquipo()
        {
            return new BLIMPLPresupuestoEquipo();
        }
    }
}
